[INFO] fetching crate mail-template 0.6.1...
[INFO] fixing mail-template-0.6.1 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate mail-template 0.6.1 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate mail-template 0.6.1
[INFO] finished tweaking crates.io crate mail-template 0.6.1
[INFO] tweaked toml for crates.io crate mail-template 0.6.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate mail-template 0.6.1 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 123 packages to latest compatible versions
[INFO] [stderr]       Adding futures v0.1.31 (available: v0.3.32)
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding handlebars v1.1.0 (available: v6.4.1)
[INFO] [stderr]       Adding toml v0.4.10 (available: v1.1.2+spec-1.1.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `mail-template` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c74ef8636b03552b7f9c7ab084db279260867f40f9a2f3016b84e166eb6826e3
[INFO] running `Command { std: "docker" "start" "c74ef8636b03552b7f9c7ab084db279260867f40f9a2f3016b84e166eb6826e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c74ef8636b03552b7f9c7ab084db279260867f40f9a2f3016b84e166eb6826e3" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c74ef8636b03552b7f9c7ab084db279260867f40f9a2f3016b84e166eb6826e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c74ef8636b03552b7f9c7ab084db279260867f40f9a2f3016b84e166eb6826e3" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr] warning: Cargo.toml: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: `mail-template` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking quoted-string v0.6.1
[INFO] [stderr]     Checking safemem v0.2.0
[INFO] [stderr]     Checking soft-ascii-string v1.1.0
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]     Checking vec-drain-where v1.0.1
[INFO] [stderr]    Compiling checked_command v0.2.4
[INFO] [stderr]     Checking quoted_printable v0.4.8
[INFO] [stderr]     Checking futures v0.1.31
[INFO] [stderr]     Checking log v0.4.33
[INFO] [stderr]     Checking maybe-owned v0.3.4
[INFO] [stderr]     Checking lut v0.1.0-unstable
[INFO] [stderr]     Checking total-order-multi-map v0.4.6
[INFO] [stderr]     Checking base64 v0.6.0
[INFO] [stderr]     Checking media-type-impl-utils v0.3.0-unstable
[INFO] [stderr]     Checking log v0.3.9
[INFO] [stderr]     Checking media-type v0.4.0-unstable
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking memchr v1.0.2
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking nom v3.2.1
[INFO] [stderr]     Checking futures-cpupool v0.1.8
[INFO] [stderr]     Checking failure v0.1.8
[INFO] [stderr]     Checking rand v0.3.23
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking vec1 v1.12.1
[INFO] [stderr]     Checking toml v0.4.10
[INFO] [stderr]     Checking mail-internals v0.2.3
[INFO] [stderr]     Checking mail-headers v0.6.6
[INFO] [stderr]     Checking mail-core v0.6.2
[INFO] [stderr]     Checking mail-template v0.6.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2015 edition to 2018
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.10s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: lut v0.1.0-unstable, nom v3.2.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr] crater-edition-check: mail-template v0.6.1 (/opt/rustwide/workdir) updating edition from 2015 to 2018
[INFO] [stderr]     Checking mail-template v0.6.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: fields `template_name` and `base_dir` are never read
[INFO] [stdout]    --> src/lib.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct Template<TE: TemplateEngine> {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 138 |     template_name: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 139 |     base_dir: CwdBaseDir,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Template` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/path_rebase.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Fail` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_UnsupportedPathError`
[INFO] [stdout] 10 | #[fail(display = "unsupported path, only paths with following constraint are allowed: {}", _0)]
[INFO] [stdout] 11 | pub struct UnsupportedPathError(Context<&'static str>);
[INFO] [stdout]    |            -------------------- `UnsupportedPathError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/path_rebase.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Display` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_UnsupportedPathError`
[INFO] [stdout] 10 | #[fail(display = "unsupported path, only paths with following constraint are allowed: {}", _0)]
[INFO] [stdout] 11 | pub struct UnsupportedPathError(Context<&'static str>);
[INFO] [stdout]    |            -------------------- `UnsupportedPathError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         mem::replace(self, new_path);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let _ = mem::replace(self, new_path);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         mem::replace(self, new_path);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let _ = mem::replace(self, new_path);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         mem::replace(self, new_iri);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let _ = mem::replace(self, new_iri);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/path_rebase.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |         mem::replace(self, new_iri);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let _ = mem::replace(self, new_iri);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/serde_impl.rs:123:21
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     mem::replace(&mut body.inline_embeddings, loaded_embeddings);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     let _ = mem::replace(&mut body.inline_embeddings, loaded_embeddings);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `template_name` and `base_dir` are never read
[INFO] [stdout]    --> src/lib.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct Template<TE: TemplateEngine> {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 138 |     template_name: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 139 |     base_dir: CwdBaseDir,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Template` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/path_rebase.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Fail` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_UnsupportedPathError`
[INFO] [stdout] 10 | #[fail(display = "unsupported path, only paths with following constraint are allowed: {}", _0)]
[INFO] [stdout] 11 | pub struct UnsupportedPathError(Context<&'static str>);
[INFO] [stdout]    |            -------------------- `UnsupportedPathError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/path_rebase.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Display` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_UnsupportedPathError`
[INFO] [stdout] 10 | #[fail(display = "unsupported path, only paths with following constraint are allowed: {}", _0)]
[INFO] [stdout] 11 | pub struct UnsupportedPathError(Context<&'static str>);
[INFO] [stdout]    |            -------------------- `UnsupportedPathError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         mem::replace(self, new_path);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let _ = mem::replace(self, new_path);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         mem::replace(self, new_path);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let _ = mem::replace(self, new_path);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         mem::replace(self, new_iri);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let _ = mem::replace(self, new_iri);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/path_rebase.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |         mem::replace(self, new_iri);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let _ = mem::replace(self, new_iri);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/serde_impl.rs:123:21
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     mem::replace(&mut body.inline_embeddings, loaded_embeddings);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     let _ = mem::replace(&mut body.inline_embeddings, loaded_embeddings);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.66s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: lut v0.1.0-unstable, nom v3.2.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr]     Checking mail-template v0.6.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.57s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: lut v0.1.0-unstable, nom v3.2.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr] crater-edition-check: mail-template v0.6.1 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking vec1 v1.12.1
[INFO] [stderr]     Checking toml v0.4.10
[INFO] [stderr]     Checking mail-internals v0.2.3
[INFO] [stderr]     Checking mail-headers v0.6.6
[INFO] [stderr]     Checking mail-core v0.6.2
[INFO] [stderr]     Checking mail-template v0.6.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: fields `template_name` and `base_dir` are never read
[INFO] [stdout]    --> src/lib.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct Template<TE: TemplateEngine> {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 138 |     template_name: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 139 |     base_dir: CwdBaseDir,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Template` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/path_rebase.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Fail` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_UnsupportedPathError`
[INFO] [stdout] 10 | #[fail(display = "unsupported path, only paths with following constraint are allowed: {}", _0)]
[INFO] [stdout] 11 | pub struct UnsupportedPathError(Context<&'static str>);
[INFO] [stdout]    |            -------------------- `UnsupportedPathError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/path_rebase.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Display` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_UnsupportedPathError`
[INFO] [stdout] 10 | #[fail(display = "unsupported path, only paths with following constraint are allowed: {}", _0)]
[INFO] [stdout] 11 | pub struct UnsupportedPathError(Context<&'static str>);
[INFO] [stdout]    |            -------------------- `UnsupportedPathError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         mem::replace(self, new_path);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let _ = mem::replace(self, new_path);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         mem::replace(self, new_path);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let _ = mem::replace(self, new_path);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         mem::replace(self, new_iri);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let _ = mem::replace(self, new_iri);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/path_rebase.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |         mem::replace(self, new_iri);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let _ = mem::replace(self, new_iri);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/serde_impl.rs:123:21
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     mem::replace(&mut body.inline_embeddings, loaded_embeddings);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     let _ = mem::replace(&mut body.inline_embeddings, loaded_embeddings);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `template_name` and `base_dir` are never read
[INFO] [stdout]    --> src/lib.rs:138:5
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct Template<TE: TemplateEngine> {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 138 |     template_name: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 139 |     base_dir: CwdBaseDir,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Template` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/path_rebase.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Fail` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_UnsupportedPathError`
[INFO] [stdout] 10 | #[fail(display = "unsupported path, only paths with following constraint are allowed: {}", _0)]
[INFO] [stdout] 11 | pub struct UnsupportedPathError(Context<&'static str>);
[INFO] [stdout]    |            -------------------- `UnsupportedPathError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/path_rebase.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Display` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_UnsupportedPathError`
[INFO] [stdout] 10 | #[fail(display = "unsupported path, only paths with following constraint are allowed: {}", _0)]
[INFO] [stdout] 11 | pub struct UnsupportedPathError(Context<&'static str>);
[INFO] [stdout]    |            -------------------- `UnsupportedPathError` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         mem::replace(self, new_path);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let _ = mem::replace(self, new_path);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |         mem::replace(self, new_path);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let _ = mem::replace(self, new_path);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/path_rebase.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |         mem::replace(self, new_iri);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let _ = mem::replace(self, new_iri);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/path_rebase.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |         mem::replace(self, new_iri);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let _ = mem::replace(self, new_iri);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/serde_impl.rs:123:21
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     mem::replace(&mut body.inline_embeddings, loaded_embeddings);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 123 |                     let _ = mem::replace(&mut body.inline_embeddings, loaded_embeddings);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.19s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: lut v0.1.0-unstable, nom v3.2.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2015 edition to 2018
[INFO] [stderr]     Checking mail-template v0.6.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/lib.rs (2 fixes)
[INFO] [stdout] warning: `impl futures::Future<Item = Template<TE>, Error = __FError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/serde_impl.rs:68:92
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...se_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Error> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/serde_impl.rs:68:74
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn load(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Erro...
[INFO] [stdout]    |                                                                          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> src/serde_impl.rs:68:75
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn load(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Erro...
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 68 -     pub fn load(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Error> {
[INFO] [stdout] 68 +     pub fn load<T: Context>(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &T) -> impl Future<Item=Template<TE>, Error=Error> + use<TE, T> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl futures::Future<Item = Template<TE>, Error = __FError>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]   --> src/serde_impl.rs:68:92
[INFO] [stdout]    |
[INFO] [stdout] 68 | ...se_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Error> {
[INFO] [stdout]    |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]   --> src/serde_impl.rs:68:74
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn load(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Erro...
[INFO] [stdout]    |                                                                          ^
[INFO] [stdout]    = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]   --> src/serde_impl.rs:68:75
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn load(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Erro...
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]    = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    |
[INFO] [stdout] 68 -     pub fn load(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Error> {
[INFO] [stdout] 68 +     pub fn load<T: Context>(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &T) -> impl Future<Item=Template<TE>, Error=Error> + use<TE, T> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.42s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: lut v0.1.0-unstable, nom v3.2.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr] crater-edition-check: mail-template v0.6.1 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking mail-template v0.6.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0515]: cannot return value referencing local data `ctx2`
[INFO] [stdout]    --> src/lib.rs:108:41
[INFO] [stdout]     |
[INFO] [stdout] 108 |     }).and_then(move |(base, base_dir)| base.load(engine, base_dir, &ctx2))
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^
[INFO] [stdout]     |                                         |                           |
[INFO] [stdout]     |                                         |                           `ctx2` is borrowed here
[INFO] [stdout]     |                                         returns a value referencing data owned by the current function
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/lib.rs:108:41
[INFO] [stdout]     |
[INFO] [stdout] 108 |     }).and_then(move |(base, base_dir)| base.load(engine, base_dir, &ctx2))
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/serde_impl.rs:68:75
[INFO] [stdout]     |
[INFO] [stdout]  68 |     pub fn load(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Err...
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    --> src/serde_impl.rs:68:16
[INFO] [stdout]     |
[INFO] [stdout]  68 -     pub fn load(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Error> {
[INFO] [stdout]  68 +     pub fn load<T: Context>(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &T) -> impl Future<Item=Template<TE>, Error=Error> + use<TE, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0700]: hidden type for `impl futures::Future<Item = Template<TE>, Error = __FError>` captures lifetime that does not appear in bounds
[INFO] [stdout]    --> src/lib.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     ctx: &C
[INFO] [stdout]     |          -- hidden type `Either<impl futures::Future<Item = Template<TE>, Error = __FError>, Failed<Template<TE>, __FError>>` captures the anonymous lifetime defined here
[INFO] [stdout] 116 | ) -> impl Future<Item=Template<TE>, Error=Error> + use<TE, C>
[INFO] [stdout]     |      -------------------------------------------------------- opaque type defined here
[INFO] [stdout] ...
[INFO] [stdout] 131 |     Either::A(base.load(engine, base_dir, ctx))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: add `'_` to the `use<...>` bound to explicitly capture it
[INFO] [stdout]     |
[INFO] [stdout] 116 | ) -> impl Future<Item=Template<TE>, Error=Error> + use<'_, TE, C>
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0515]: cannot return value referencing local data `ctx2`
[INFO] [stdout]    --> src/lib.rs:108:41
[INFO] [stdout]     |
[INFO] [stdout] 108 |     }).and_then(move |(base, base_dir)| base.load(engine, base_dir, &ctx2))
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^
[INFO] [stdout]     |                                         |                           |
[INFO] [stdout]     |                                         |                           `ctx2` is borrowed here
[INFO] [stdout]     |                                         returns a value referencing data owned by the current function
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/lib.rs:108:41
[INFO] [stdout]     |
[INFO] [stdout] 108 |     }).and_then(move |(base, base_dir)| base.load(engine, base_dir, &ctx2))
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/serde_impl.rs:68:75
[INFO] [stdout]     |
[INFO] [stdout]  68 |     pub fn load(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Err...
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]    --> src/serde_impl.rs:68:16
[INFO] [stdout]     |
[INFO] [stdout]  68 -     pub fn load(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &impl Context) -> impl Future<Item=Template<TE>, Error=Error> {
[INFO] [stdout]  68 +     pub fn load<T: Context>(self, mut engine: TE, default_base_dir: CwdBaseDir, ctx: &T) -> impl Future<Item=Template<TE>, Error=Error> + use<TE, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0700]: hidden type for `impl futures::Future<Item = Template<TE>, Error = __FError>` captures lifetime that does not appear in bounds
[INFO] [stdout]    --> src/lib.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     ctx: &C
[INFO] [stdout]     |          -- hidden type `Either<impl futures::Future<Item = Template<TE>, Error = __FError>, Failed<Template<TE>, __FError>>` captures the anonymous lifetime defined here
[INFO] [stdout] 116 | ) -> impl Future<Item=Template<TE>, Error=Error> + use<TE, C>
[INFO] [stdout]     |      -------------------------------------------------------- opaque type defined here
[INFO] [stdout] ...
[INFO] [stdout] 131 |     Either::A(base.load(engine, base_dir, ctx))
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: add `'_` to the `use<...>` bound to explicitly capture it
[INFO] [stdout]     |
[INFO] [stdout] 116 | ) -> impl Future<Item=Template<TE>, Error=Error> + use<'_, TE, C>
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0515, E0700.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0515`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mail-template` (lib) due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0515, E0700.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0515`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `mail-template` (lib test) due to 2 previous errors
[INFO] running `Command { std: "docker" "inspect" "c74ef8636b03552b7f9c7ab084db279260867f40f9a2f3016b84e166eb6826e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c74ef8636b03552b7f9c7ab084db279260867f40f9a2f3016b84e166eb6826e3", kill_on_drop: false }`
[INFO] [stdout] c74ef8636b03552b7f9c7ab084db279260867f40f9a2f3016b84e166eb6826e3
